Arduino buton basma süresine göre işlem yapma
Merhaba,
Arduino ile kısa zamandır ilgileniyorum, çok yeniyim diyebilirim.
Her basışta ledin durumunu değiştiren bir kod yazdım, fakat ilk led durumuna 3 saniye asılı tutunca geçmesini istiyorum. Bunu yapamadım. Nasıl bir yol önerirsiniz?
Yazdığım çalışan kod aşağıda, yapmak istediğim sadece 3 saniye basılı tutunca ilk led durumunu gerçekleştirmesi. diğer durumlar şu anda olduğu gibi beklemeksizin butona basıldığında gerçekleşecek.
Fikir ve önerilerinizi bekliyorum
Şimdiden çok teşekkürler.
const int MainLed = 3;
const int button = 2;
boolean previousBtnState = LOW;
boolean nowBtnState = LOW;
int ledMode = 0;
void setup()
{
pinMode(MainLed, OUTPUT);
pinMode(button, INPUT);
}
boolean buttonControl(boolean state)
{
boolean nowBtn = digitalRead(button);
if (state != nowBtn)
{
delay(5);
nowBtn = digitalRead(button);
}
return nowBtn;
}
void ledSet(int state)
{
if (state == 1)
{
digitalWrite(MainLed, HIGH);
}
else if (state == 2)
{
analogWrite(MainLed, 127);
}
else if (state == 3)
{
digitalWrite(MainLed, HIGH);
delay (500);
digitalWrite(MainLed, LOW);
delay (500);
}
}
void loop()
{
nowBtnState = buttonControl(previousBtnState);
if (previousBtnState == LOW && nowBtnState == HIGH)
{
ledMode++;
}
previousBtnState = nowBtnState;
if (ledMode == 4)
ledMode = 0;
ledSet(ledMode);
}